#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
#include<assert.h>

typedef int LDataType;
typedef struct ListNode
{
    LDataType val;
    struct ListNode* prev;
    struct ListNode* next;
}LNode;

void ListPrint(LNode* phead);
LNode* ListInit(LNode* phead);
LNode* BuyListNode(LDataType x);

void ListPushBack(LNode* phead, LDataType x);
void ListPushFront(LNode* phead, LDataType x);
void ListPopBack(LNode* phead);
void ListPopFront(LNode* phead);
//pos位置之前插入
void ListInsert(LNode* phead,LNode* pos, LDataType x);
//pos位置删除
void ListErase(LNode* phead, LNode* pos);
bool ListEmpty(LNode* phead);
void ListDestory(LNode* phead);

